package com.yunlongn.async.idempotent.filter;


import java.util.concurrent.TimeUnit;

/**
 * 幂等过滤器
 *
 * @author yunlongn
 */
public interface IdempotentFilter {

    /**
     * 判断是否需要过滤
     *
     * @param id 主键
     * @param timeUnit timeUnit
     * @param periods periods
     * @return true:过滤，false:不过滤
     */
    boolean needFilter(String id, TimeUnit timeUnit, int[] periods);

    /**
     * 移除幂等标志
     *
     * @param id 主键
     */
    void remove(String id);

}
